// pythonlauncher.h
#ifndef PYTHONLAUNCHER_H
#define PYTHONLAUNCHER_H

#include <QObject>
#include <QProcess>

class PythonLauncher : public QObject
{
    Q_OBJECT
public:
    explicit PythonLauncher(QObject *parent = nullptr);

    // QML 可调用的方法：启动 Python 脚本
    Q_INVOKABLE void startPythonScript(const QString &scriptPath);

signals:
    // 发送 Python 输出信息到 QML
    void pythonOutput(const QString &output);
    // 发送错误信息到 QML
    void pythonError(const QString &error);
    // 通知 QML Python 进程已结束
    void pythonFinished(int exitCode);

private slots:
    // 处理 Python 输出
    void onReadyReadStandardOutput();
    // 处理 Python 错误输出
    void onReadyReadStandardError();

private:
    QProcess *m_pythonProcess; // 用于启动 Python 进程
};

#endif // PYTHONLAUNCHER_H
